1. Field of the Invention
The invention concerns a color management system whereby an efficient sequence of transform steps is generated for transforming color image data through one or more color spaces. The sequence of transform steps is generated based upon pre-selected color profiles and gamut mapping algorithms. In this manner, complex transform sequences for performing color management of color image data, such as proofing, creative color modeling, and gamut boundary determinations, can be quickly created, applied and evaluated by a developer.
2. Description of the Related Art
Traditionally, proofing is performed in the graphics art industry to simulate the output of a printing press without having to invest the time and cost of actually printing a sample for review. Proofing is commonly done with a proofing machine that uses the same input medium as that used by the printing press, such as film or digital color image data, in order to create a simulation of the printed image. More recently, proofing systems have been developed which allow a graphic artist to simulate a printed image by rendering digital color image data on a CRT display. Proofing systems which utilize digital color image data attempt to provide an accurate rendering of a color image as it would appear on a printing press, or other output device.
Traditional digital color management systems attempt to account for limitations in the range of colors that can be produced by a given output device, such as a printing press, on a given medium, such as coated paper. The color management system therefore attempts to adjust the color data of the input image to account for those colors that are outside the color gamut boundary of the output device. This adjustment is known as gamut mapping, and is performed by application of a gamut mapping algorithm to the color image data. There are several different types of gamut mapping algorithms in use by various color management systems. In addition to gamut mapping, color management systems also attempt to obtain an accurate mapping between a combination of certain device colorants and the appearance that the combination will make on a particular medium by a particular output device under particular viewing conditions. The transformation of color image data from one colorant space to another colorant space is known as appearance modeling. Digital color management systems therefore attempt to achieve accurate gamut mapping and accurate appearance modeling in an efficient manner. This can be difficult in unique situations such as proofing where it is desirable to simulate how color image data from an input device will appear on a given output device by viewing the simulated appearance on a different output device.
The original International Color Consortium (ICC) architecture provides a color management system in which device profiles of an input device and an output device are utilized in order to transform color image data from the input device for rendering on the output device. In this scheme, the device profile of a given device contains several data object tags, some of which comprise multi-dimensional look-up table (LUT) tags. These LUTs are used in the original ICC architecture for appearance modeling to map color image data from a device-dependent color space, such as RGB, into a device-independent color space. On the other hand, the LUTs may be used to map from a device-independent color space to a device-dependent color space. One drawback of this architecture is that it requires mapping to and from the device-independent color space for every transformation between two color profiles.
In the current ICC architecture, device profiles combine appearance modeling and gamut mapping together into LUTs that are contained in the color profiles. The LUTs perform these functions simultaneously by mapping color image data in a color space corresponding to a given combination of output device and viewing conditions into a fictitious color space known as the Profile Connection Space (PCS). The PCS is a standardized color space based upon a fictitious output device, recording medium and set of viewing conditions. Thus, in the current ICC architecture, the application of a LUT to color image data performs both appearance modeling and gamut boundary mapping in one step. A color profile may contain several different sets of LUTs, each of which represents a specific combination of gamut mapping algorithm and viewing condition. The color profile format contains an xe2x80x9cintentxe2x80x9d flag which indicates to the color management system the particular type of gamut mapping algorithm to apply, upon which the color management system selects the appropriate LUT that corresponds to the particular type of gamut mapping algorithm.
The current ICC architecture supports alternate methods that can be utilized for proofing in order to simulate the appearance of color image data from an input device as it would appear on a given output device by viewing the simulated appearance on another output device. Under the current ICC scheme, special preview tags are provided in the color profile for accessing special preview LUTs which are used to simulate a proof image as it would appear on a given output device. The preview LUTs achieve this simulation by mapping the color image data to a different gamut boundary by using a particular gamut mapping algorithm. The Preview LUTs perform this gamut mapping function by transforming the color image data between device-dependent color space and the fictitious PCS color space.
Like the original ICC scheme, the current ICC scheme for proofing has several drawbacks. First, the preview LUTs of the current ICC scheme require transformation from the PCS color space for every device color profile that is in the color transformation scenario. Every such mapping may introduce some errors due to interpolation errors, round-off errors, and the like. In addition, a preview LUT which is used for simulated proofing does not contain the same data as the LUT which is used to transform the color image data for actual rendering on the output device. Therefore, preview LUTs must be maintained in a coordinated fashion with the actual transformation LUTs for each combination of gamut mapping algorithm and viewing conditions in order to avoid inaccuracies in appearance between the simulated output of color image data in a proofing context and the actual output of the color image data by the output device. Such coordinated maintenance of predetermined LUTs is logistically cumbersome.
An alternative method for proofing under the current ICC architecture is to perform separate consecutive transformations of the color image data by using the actual transformation LUTs for the simulated output device instead of the preview LUTs. For example, the color image data is first transformed from the color space of the input device to the PCS color space, then from the PCS color space to the color space of the simulated output device, then from the color space of the simulated output device to the PCS color space, and lastly from the PCS color space to the color space of the actual output device. Although this alternative method avoids appearance inconsistencies that might be introduced through the use of preview LUTs, the alternative method requires the unnecessary computational overhead associated with repeatedly mapping between device-dependent color spaces and the fictitious PCS color space.
Another ICC architecture has been proposed in the ICC Reference Implementation Working Group (RIWG) which separates the function of appearance modeling from the function of gamut mapping by introducing a new pair of LUT tags in the device color profile format which contain special LUTs for performing appearance modeling only. Special tags called gamut boundary descriptors are also provided in the color profile for containing descriptions of the device""s color gamut boundary. The gamut boundary descriptors are used by gamut mapping algorithms when performing gamut mapping on color image data. The ICC RIWG transformation pipeline for transforming color data from the color space of one device to the color space of another color device generally consists of: (1) forward appearance modeling which maps color image data from input device color space to the CIE-JCh color space; (2) application of abstract profiles, if desired, to perform arbitrary color mapping within CIE-JCh space; (3) gamut mapping by applying a gamut mapping algorithm which utilizes the gamut boundary descriptors from input and output color profiles; and (4) reverse appearance modeling which is performed by mapping the color image data from CIE-JCh space to the output device color space.
The ICC RIWG architecture also has drawbacks because gamut mapping between abstract profiles in CIE-JCh space can introduce artifacts into the image data. In addition, this method is cumbersome for proofing because it requires the application of multiple transformation pipelines in order to simulate the appearance of color image data on a given output device by rendering the simulated appearance on another output device. This requires additional transformations between device-dependent color spaces and CIE-JCh space which costs processing overhead. Moreover, this method cannot support a transformation which involves only one color profile. This is problematic for certain unique color management scenarios. For instance, when developing the gamut boundary descriptor for a particular device, it is useful to use a transform where only the color appearance transformation from the color profile that corresponds to the particular device is applied to a test set of color image data to map it from the color space of the particular device to CIE-JCh color space. In this manner, the gamut boundary of the particular device can be determined more efficiently.
A prior art system for providing a color image processing system is disclosed in Newman, et. al., U.S. Pat. No. 5,432,906, entitled xe2x80x9cColor Image Processing System For Preparing A Composite Image Transformation Module For Performing A Plurality Of Selected Image Transforms.xe2x80x9d A system is disclosed in Newman for accepting a series of color transformation requests from a user wherein the transformation requests represent a specific color management scenario that the user wishes to apply to color image data. The system arranges color transformations accordingly and also selects predetermined look-up tables (LUTs) for performing gamut mapping. The system then generates one composite transform which incorporates the arrangement of color transformations and gamut mapping LUTs. The composite transform can then be applied to color image data.
Although the system disclosed in Newman has the ability to support color management scenarios which include multiple transforms, such as proofing, the system is not seen to allow the user to select the particular type of gamut mapping algorithm to be applied to the color image data. The system is seen only to allow the user to select a gamut mapping algorithm which is predetermined and which cannot take into account the gamut boundary descriptions of the relevant devices at the time that the gamut mapping algorithm is applied to the color image data. Furthermore, the creation of a single composite transform is seen to have the potential to introduce errors because portions of non-linear activity in many of the individual color transforms and gamut mapping LUTs may be lost during creation of the composite transform. Lastly, the system disclosed in Newman is not seen to support the unique situation where only one color transform is to be applied to the color image data.
Thus, an improved architecture for color management is needed for providing increased processing efficiency and greater flexibility for use in the color management of color image data. Such a color management architecture is needed for supporting unique situations such as proofing and gamut boundary determinations. A color management architecture is needed which accepts input information from a user regarding a color management scenario and which then efficiently creates an appropriate sequence of accurate color transformations for application to color image data. It is desirable for such a color management architecture to allow the user to select the type of gamut mapping algorithm to be applied, and to allow the use of a gamut mapping algorithm which utilizes gamut boundary descriptions that are not accessed by the gamut mapping algorithm until the gamut mapping is performed.
The invention addresses the foregoing problems by providing an improved architecture for efficiently creating a transform sequence for use in the color management of color image data. The invention enables a user to create an efficient transform sequence by selecting one or more color profiles and gamut mapping algorithms wherein the selections represent a desired color management process. The created transform sequence is then applied to color image data in order to achieve the desired color management. The improved color management architecture has the capability to support unique situations in color management, such as proofing and color gamut boundary determinations.
Specifically, a first embodiment of the present invention is directed to a method for generating a color transformation sequence comprised of transform steps, wherein the color transformation sequence is for transforming color image data. The method includes receiving at least one reference to a color profile or a gamut mapping algorithm. At least one transform step is generated based on the at least one reference, wherein the at least one transform step is a profile step or a gamut mapping step. The at least one transform step is included in the color transformation sequence.
Preferably, multiple references to color profiles and gamut mapping algorithms are provided by a user. The method preferably generates multiple transform steps based on the multiple references to color profiles and gamut mapping algorithms provided by the user. In addition, the method preferably avoids generating profile steps that would transform the color image data into, and out of, unnecessary device-dependent color spaces.
By virtue of the foregoing arrangement, a color management system is provided whereby an efficient color transformation sequence is generated for transformation of color data. In this manner, a user can create an efficient and accurate color transform sequence and can select the type of gamut mapping algorithms for inclusion in the color transformation sequence.
In another aspect of the invention, a method for transforming color data is provided whereby a color transformation sequence comprised of transform steps is applied to the color image data. The method includes accessing the color transformation sequence and accessing the color image data. Each transform step is sequentially processed to transform the color image data wherein, in the case that the transform step being processed is a profile step, a color transformation module is accessed from a corresponding color profile and is applied to the color image data. In the case that the transform step being processed is a gamut mapping step, a corresponding gamut mapping algorithm is accessed and applied to the color image data.
By virtue of the foregoing arrangement, a color management system is provided whereby an efficient color transformation sequence is applied to color image data. Preferably, the gamut mapping steps of the color transformation sequence correspond to different types of gamut mapping algorithms which utilize color gamut boundary descriptions of the relevant devices when the gamut mapping algorithm is applied to the color image data. In addition, the color transformation sequence preferably contains only those profile steps necessary to achieve the desired color transformation of the color image data, while avoiding unnecessary transformations into, and out of, device-dependent color spaces. In this manner, a user can efficiently apply a desired color management scheme to color image data for evaluation and correction, if necessary.
The embodiments of the invention described above, and other embodiments, may also be provided in other forms, such as a computing device, computer-executable process steps, and a computer-readable medium for storing computer-executable process steps.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiment thereof in connection with the attached drawings.